{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "4d5e6029-1218-49b9-9257-52bbe1c216e6",
   "metadata": {},
   "source": [
    "Chapter 13\n",
    "# 不同边权重，不同线型\n",
    "Book_6《数据有道》 | 鸢尾花书：从加减乘除到机器学习"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c733174b-bdc8-4cf7-94a1-6740b924ff03",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import networkx as nx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "528e6f3b-5e06-4d96-ba4c-1cc2dd3299aa",
   "metadata": {},
   "outputs": [],
   "source": [
    "G = nx.Graph()\n",
    "\n",
    "# 添加边\n",
    "G.add_edge(\"a\", \"b\", weight=0.6)\n",
    "G.add_edge(\"a\", \"c\", weight=0.2)\n",
    "G.add_edge(\"c\", \"d\", weight=0.1)\n",
    "G.add_edge(\"c\", \"e\", weight=0.7)\n",
    "G.add_edge(\"c\", \"f\", weight=0.9)\n",
    "G.add_edge(\"a\", \"d\", weight=0.3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "cb1ffcea-9163-40c5-8bc1-caa5320dcccf",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将边分成两组\n",
    "\n",
    "# 第一组：边权重 > 0.5\n",
    "elarge = [(u, v) \n",
    "          for (u, v, d) \n",
    "          in G.edges(data=True) \n",
    "          if d[\"weight\"] > 0.5]\n",
    "\n",
    "# 第二组：边权重 <= 0.5\n",
    "esmall = [(u, v) \n",
    "          for (u, v, d) \n",
    "          in G.edges(data=True) \n",
    "          if d[\"weight\"] <= 0.5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "b652f577-5c52-4b95-9049-b9b432c52a26",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 节点布局\n",
    "pos = nx.spring_layout(G, seed=7)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "aecce157-8efd-4c97-9bee-9f95dedf72b4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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3Tv9TXtfi61ME0pKDm7yEU5SUqxp7HbtrPXNjz8OP/5od1UitdfHH3/M3LlzefTRR+tkIAdKoSzVbv16mDHDargKR40awYUXWuHcurU1agbIywvfmkVqovz8fK677jqGDh3KX/7yF7vLqRE0cSfVruxebWlpeE8NN24Mo0ZZH5smvPaataxq4EBITVVTmEhVTZo0ib179/Lss88GZaVFbaRvO1Lt3G7r95ISe+sIhGHAH/8IiYnwzjvw1FOwYYPVSS4igVu2bBlPP/00Dz74IK1bt7a7nBpDoSzV7tCRck2SlASXXgrjxlmj6IULweu1uyqRmqewsJCxY8fSp08fJk6caHc5NUoYTy5KTVVTQ7lMs2bw5z9by6fcbmu983//a3Vrt2+v7TtFTuS+++5j+/btvP/++zh0HyggCmWpdklJcOutBxuoaqqy+ouLrXD+73+haVMYPBhOOUXhLHI0q1ev5p///CfTpk2jQ4cOdpdT42idskgFbdsGS5bA9u3Qrx8MGWJ3RSLhpbS0lNNPPx3DMPjmm29waYceILAM1UhZql1JidUs1bs3nHSS3dVUn9at4aqr4OefITbW+tzPP1u/twns1EmRWukf//gHGzduVCBXgUJZqp3DAenp0KFD7QplsKasTz754J/XrrXWZbdpY01r17avV6Si0tPTmTZtGrfffjvdu3e3u5waS3fgpdo5nVZ41dRGr0CMHAmXXQaFhfDCCzB3rtUYJlKXmKbJU089RevWrZkyZYrd5dRoGilLtTMMqzGqLoSyYVgd2aeeas0OrFkD9epZj+XlWadTidR2pmny5JNPkpmZSb2yfwBSKQplCQqXq2ZtHlJVhmHtq52SYv153z544gmrS3vwYNCWv1KblS170t7WVafpawmKQYMOv/da18THWzuE7dkDzzwDr79uHR8pInI8GilLUPTsaXcF9nI44LTTrD20v/sOvvgCli8/uNe2SE3m9/u1KUiQKJQlKLZvtxq+WrSwuxJ7ORzQrRt06XJwOv+772DrVuvgi0aN7K1P5EQKCwvZtm0bubm5FBcXM3DgQBwOB2VbXOigieqlUJag+PxzqF8f/vQnuysJD07nwQYwh8MK5Q0boGtXGDAAGjSwszqRY7v88svZuXMn27Zto0WLFrhcLmbOnMlZZ50FWE1eCubqo/kHCQqXq250X1dGaircdBMMHQqbNsHjj8POnXZXJXKkqVOn8v333zN37lxWrVrF2LFjWbVqFUOGDOGqq66iuLhYgVzNNFKWoHC7rQMd5OhcLujVC7p3t6azmze3Pr9uHbRte3DHMBG75Obm8vHHH/PII4+U72E9ceJEVqxYQWJiIosXL+b222/n0UcfxeFwKJyriUbKEhR1bUlUZbndcPrp1pR2UREsWgSzZsEnn0BBgd3VSV3mdDpxOBxs3Lix/HOGYbB+/Xq6devG9ddfz1tvvcXmzZsVyNVIoSxB0aiR7pMGKirKmtbu18/avnPWLFi82O6qpK6KiYmhQ4cOLFmyhK+//pr09HRuvfVW9u/fz1VXXcUNN9yAy+Vi5cqVdpdaq2j6WoKif3+7K6iZoqKsNd5nnglffQVer/V5r9e6R6/NkiRUDMNg0qRJXHzxxYwaNQqn04nb7eaDDz4AYP/+/Zxyyins3bvX5kprF4WySBiqVw9+a24FYPVq+Owz6+StXr2s8K6Ibdu2sXnzZnr16kVMTExwipVayTRNOnTowPr163n33Xdp0qQJSUlJtGvXDtM0+eWXX/j222+ZNm2a3aXWKpq+lqD4+mt46CG7q6g9One2msKWL4fHHoOlS8HvP/bzCwoKmD59Oj179uS2224jMTGRKVOm4PP5Qlaz1GyGYeD9barmwgsvpG/fvrRr1w6Ab7/9lssvv5wLLriA3r1721lmraNQlqBwOq3Gpd/2F5Aqql8fhg2Dv/7V2ils716rOexYbrvtNt544w1uueUWFi9ezLx583jjjTf45ptvQle01GimaeJ0Oo/4fGFhIQcOHODcc8/lpZdesqGy2s0wzRN/2/R4PMTHx5OXl0dcXFwo6pIa7rvv4J134J57IEI3Saqd328dgnG0ptdvv/2WM888kxdffJExY8aUd8b26NGDXr168dRTT4W4WqkJvF4v27dvp0mTJvj9fhr81qnp8/mOWPLk9Xrx+XxERkbaVG3NEkiGaqQsQeFyWb9rA5HgcDiOHshgbfhw1llnMXr06COWqjRu3BiACvwsLnXIJ598wsiRI+ncuTM9e/Zk3Lhx/Oc//wGspVFl/x99/PHHbNu2jYiICAVykCiUJSjcbut3rVUOrW3btvHJJ59w8803U79+/fLPL1u2jOjo6PKf0su+yZaF84YNG1i6dGnoCxbblZSUcPnll3PKKafwySefcNNNN+F2u3nssce46KKL+OGHHwBYs2YNt9xyC9OnT8d/vIYGqRJNLEpQtGwJEyeCGn5D65133qFbt2507ty5/HN+v58lS5aQm5vLOeecU/65sinJnJwc7rnnHnJzc9mxYwcTJ07ktttus+tLkBB78cUXOeWUU/jXv/4FwMCBAxk5ciTvvfceb7/9NpMmTeKhhx6ie/fuXHvttXTv3l0nRAWRQlmCIjISmjSxu4q6JzExkezsbOodsqB58eLFLFmyhD59+nDaaacBHPZNNSEhgQcffBDTNNmwYQMzZszghx9+YPbs2bjK7kNIrRUfH8/PP//Mli1baNu2LQDNmzdnwoQJtGjRgltuuYXZs2fz2GOPceutt9pcbe2nH3ckKPbvh/feg5wcuyupWzp06EBsbCybN28GICsri/vuuw+Xy8XNN98McNSpx5SUFDp16sSll17KP//5TxYvXsy6detCWLnY5cwzz6RFixa88cYb5OfnH/bYBRdcwJ133sl7771Hjv4xh4RCWYLC67W2iszNtbuSuqVTp06cc845DBkyhMGDB9OtWzeKioq455576NixI3D08299Pl/5/eVevXqxc+dOioqKQlq72KN169aMGjWKKVOmMHXqVLKysg5rBOzSpQtOp5Nff/3VxirrDoWyBIW6r+0RFRXFrFmz+Oqrrxg4cCDPP/88H3/8MQMGDGDNmjUUFhYeEcpl61ENw2Dfvn3ceOONdOjQgYYNG9r0VUio3X333bzyyiu8/PLLnHXWWbz88susWbOGtLQ0Hn/8cZKSkmjfvr3dZdYJuqcsQaHua3t17dqVrl27lv958+bNXHrppVxyySVMnTqViEMWj3u9Xr799ls+/vhj3n77bfbu3cv8+fPLR9ZSN1x88cUMHDiQO+64g1tuuYXk5GSysrJISUlh/vz5dpdXZyiUJSicTmsdrUbK4aF+/foMGzaMDh06EBERQV5eHhs3buSzzz7jtddeIysri8GDB/PXv/6VP/7xjyQlJWktcx2UlJTESy+9xKZNm9i9ezf169endevWJCYm2l1anaEdvSRoliyBU06BFi3srkTKmKaJYRhcddVVvPzyywwZMoQrrriCESNGlG8sIiLVK5AM1UhZgmbwYLsrkN8ru598zTXXsHPnTlasWMHZZ5+tH7bruLJ162I//S1I0Pzyi5ZEhat+/fqxePFi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\n",
      "text/plain": [
       "<Figure size 600x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化\n",
    "plt.figure(figsize = (6,6))\n",
    "# 绘制节点\n",
    "nx.draw_networkx_nodes(G, pos, node_size=700)\n",
    "\n",
    "# 节点标签\n",
    "nx.draw_networkx_labels(G, pos, \n",
    "                        font_size=20, \n",
    "                        font_family=\"sans-serif\")\n",
    "\n",
    "# 绘制第一组边\n",
    "nx.draw_networkx_edges(G, pos, \n",
    "                       edgelist=elarge, \n",
    "                       width=1)\n",
    "\n",
    "# 绘制第二组边\n",
    "nx.draw_networkx_edges(G, pos, \n",
    "                       edgelist=esmall, \n",
    "                       width=1, \n",
    "                       alpha=0.5, edge_color=\"b\", \n",
    "                       style=\"dashed\")\n",
    "\n",
    "# 边标签\n",
    "edge_labels = nx.get_edge_attributes(G, \"weight\")\n",
    "nx.draw_networkx_edge_labels(G, pos, \n",
    "                             edge_labels)\n",
    "\n",
    "plt.savefig('不同边权重，不同线型.svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a98bb033-59f6-462d-a92c-f25105615efb",
   "metadata": {},
   "source": [
    "参考： \n",
    "https://networkx.org/documentation/stable/auto_examples/drawing/plot_weighted_graph.html"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
